package lwq

import (
	"strconv"
	"time"
)

type Sj_时间 struct {
}

// 13位时间戳
func (*Sj_时间) QXX_取现行_时间戳() (时间戳 int) {
	时间戳 = int(time.Now().UnixMilli())
	return
}
// 10位时间戳
func (*Sj_时间) QXX_取现行_时间戳_十位() (时间戳 int) {
	时间戳 = int(time.Now().Unix())
	return
}
func (*Sj_时间) QXX_取现行_时间戳_纳秒级() (时间戳 int) {
	时间戳 = int(time.Now().UnixNano())
	return
}

func (*Sj_时间) QXX_取现行_时间() (时间 time.Time) {
	时间 = time.Now()
	return
}

func (*Sj_时间) SJD_时间到文本(时间 time.Time) (时间文本 string) {
	时间文本 = 时间.Format("2006-01-02 15:04:05")
	return
}

func (*Sj_时间) CJ_创建时间(年, 月, 日, 时, 分, 秒, 毫秒 int) (返回值 time.Time) {
	返回值 = time.Date(年, time.Month(月), 日, 时, 分, 秒, 毫秒, time.Local)
	return
}

// @格式必须是 "2019-04-10 12:54:03"
func (*Sj_时间) CWB_重文本载入(时间文本 string) (时间 time.Time) {
	时间, _ = time.Parse("2006-01-02 15:04:05", 时间文本)
	return
}


func (*Sj_时间) CSJ_重时间戳载入(时间戳 any) (时间 time.Time) {
	结果, _ := strconv.ParseInt(any_到文本(时间戳), 0, 64)
	时间 = time.Unix(结果, 0)
	return
}
//13位
func (*Sj_时间) DSJ_到时间_戳(时间 time.Time) (时间戳 int) {
	时间戳 = int(时间.UnixMilli())
	return
}

//10位
func (*Sj_时间) DSJ_到时间戳_十位(时间 time.Time) (时间戳 int) {
	时间戳 = int(时间.Unix())
	return
}

func (*Sj_时间) QN_取年(时间 time.Time) (返回值 int) {
	返回值 = 时间.Year()
	return
}
func (*Sj_时间) QY_取月(时间 time.Time) (返回值 int) {
	返回值 = int(时间.Month())
	return
}
func (*Sj_时间) QR_取日(时间 time.Time) (返回值 int) {
	返回值 = 时间.Day()
	return
}
func (*Sj_时间) QXS_取小时(时间 time.Time) (返回值 int) {
	返回值 = 时间.Hour()
	return
}
func (*Sj_时间) QF_取分(时间 time.Time) (返回值 int) {
	返回值 = 时间.Minute()
	return
}
func (*Sj_时间) QM_取秒(时间 time.Time) (返回值 int) {
	返回值 = 时间.Second()
	return
}
func (*Sj_时间) QXQ_取星期几(时间 time.Time) (返回值 int) {
	返回值 = int(时间.Weekday())
	return
}
func (*Sj_时间) QZ_取周(时间 time.Time) (返回值 int) {
	_, 返回值 = 时间.ISOWeek()
	return
}

func (*Sj_时间) QDN_取当年_第几天(时间 time.Time) (返回值 int) {
	返回值 = 时间.YearDay()
	return
}

// 让程序延时执行 再这里等待时间到达收 继续执行 单位 毫秒
func (*Sj_时间) YCC_延迟程序(延迟毫秒数 int) (返回值 int) {
	time.Sleep(time.Duration(延迟毫秒数) * time.Millisecond)
	return
}
